package com.wk.design.template;

/**
 * 模板模式，一般有一个或多个未实现的方法，且这些方法有固定的执行顺序
 */
public abstract class NetworkCourse {
    protected final void createCourse(){
        this.postPreResource();
        this.createPPt();
        this.liveVedio();
        this.postNote();
        this.postResource();
        if(needHomework()){
            checkHomework();
        }
    }

    // 抽象类
    abstract void checkHomework();

    protected boolean needHomework(){
        return false;
    }

    final void postPreResource(){
        System.out.println("分发预习资料");
    }
    final void createPPt(){
        System.out.println("备课ppt");
    }
    final void liveVedio(){
        System.out.println("直播");
    }
    final void postNote(){
        System.out.println("提交笔记");
    }
    final void postResource(){
        System.out.println("提交源码");
    }

}
